<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.js"></script>
    <title>p61父组件向子组件传值</title>
</head>
<body>
    <div id="app">
        <!-- 父组件可以引用子组件的时候，通过属性绑定（v-bind：）的形式，把需要传递给子组件的数据，一属性绑定的形式，传递到子组件内部，供子组件使用 -->
        <com1 :parentmsg="msg"></com1>
    </div>
    <script>
        //子组件默认无法访问到父组件的data中的数据和methods中的方法
    var vm=new Vue({
        el:"#app",
        methods:{},
        data:{
            msg:"这是父组件的数据!"
        },
        filters:{},
        directives:{},
        components:{
            com1:{
                template:"<h1 @click='change'>这是一个子组件--{{parentmsg}}</h1>",
                // 注意组件中的props中的数据都是通过父组件传递给子组件的
                // 把子组件传递过来的parentmsg属性现在props数组中定义一下，这样才能使用这个数据
                props:["parentmsg"],
                // 注意子组件中的data数据，并不是通过父组件传递过来，而是子组件自身私有的，比如子组件通过ajax请求的数据，都可以放到data上
                // data上的数据都是可读可写的，props上的数据都是只读的无法重新赋值
                data:function(){
                    return {}
                },
                methods:{
                    change(){
                        this.parentmsg="被修改了"
                    }
                }
            }
        }
    })
    </script>
</body>
</html>